[アップデート] S3 Storage Lens メトリクスを CloudWatch にパブリッシュできるようになりました
コンバンハ、千葉(幸)です。
Amazon S3 Storage Lens のメトリクスを CloudWatch にパブリッシュし、CloudWatch メトリクスとして利用できるようになりました。
これまでは S3 Storage Lens ダッシュボードの中でのみ利用可能だったメトリクスが CloudWatch メトリクスとして利用できるようになったため、CloudWatch ダッシュボードや CloudWatch アラームといった CloudWatch でお馴染みの機能が使用できるようになりました。
Amazon S3 Storage Lens とは
Storage Lens は S3 ストレージの利用状況とアクティビティを可視化する分析機能です。 Organizations を使用している場合は組織単位で可視化することも可能です。設定を有効化しておけば CSV または Apache Parquet 形式で S3 バケットに日次でエクスポートすることもできます。
機能の詳細は以下をご参照ください。
Storage Lens で使用できるメトリクスは無料のメトリクスと高度なメトリクスに分類されます。
無料のメトリクス(使用状況メトリクス)
- ストレージの合計
- オブジェクト数
- 現行バージョンのバイト数
- 現行バージョンのオブジェクト数
- 旧バージョンのバイト数
- 旧バージョンのオブジェクト数
- 削除マーカーのオブジェクト数
- 暗号化されたバイト数
- 暗号化されたオブジェクト数
- レプリケートされたバイト数
- レプリケートされたオブジェクト数
- オブジェクトロックのバイト数
- オブジェクトロックのオブジェクト数
- 未完了の MPU バイト数
- 未完了の MPU オブジェクト数
これらのメトリクスを取得する Storage Lens ダッシュボードはデフォルトで作成されています。
高度なメトリクス(アクティビティメトリクス)
- すべてのリクエスト
- GET リクエスト
- PUT リクエスト
- HEAD リクエスト
- POST リクエスト
- DELETE リクエスト
- LIST リクエスト
- SELECT リクエスト
- SELECT でスキャンされたバイト
- SELECT で返されたバイト
- ダウンロード済みバイト数
- アップロード済みバイト数
- 4xx エラー
- 5xx エラー
高度なメトリクスは「モニタリングされる 100 万個のオブジェクトあたり 0.20USD/月」の料金がかかります。(東京リージョンの場合)
オブジェクト数はデフォルトの Storage Lens ダッシュボードから確認できるため、事前に規模感を確認しておくと良いでしょう。
このくらいの規模感であれば月に 0.5 USD 弱で済みます。
Storage Lens メトリクスの CloudWatch へのパブリッシュ
Storage Lens ダッシュボードで高度なメトリクスの取得を有効化している場合、オプションで CloudWatch へのパブリッシュを有効化できます。
CloudWatch へのパブリッシュ自体には追加料金は発生しません。高度なメトリクスの取得にかかる S3 料金と API リクエストやアラームの利用にかかる CloudWatch 料金は通常通り発生します。
Storage Lens で CloudWatch パブリッシュを有効化してみた
今回は既存の Storage Lens ダッシュボードの設定を変更して CloudWatch パブリッシュを有効化してみます。
Storage Lens ダッシュボードの一覧から、ダッシュボードの詳細に遷移します。
「ダッシュボード設定を表示」を押下します。
「編集」を押下します。
ダッシュボードの設定項目はさまざまありますが、今回追加された「CloudWatch パブリッシュ」にチェックを入れて変更を保存します。
CloudWatch パブリッシュを選択するためには「高度なメトリクスとレコメンデーション」を選択する必要があります。
これで設定は完了です。即時にメトリクスに反映されるわけではないので、ここから一晩ほど寝かせましょう。
After your daily S3 Storage Lens metrics appear in your S3 Storage Lens dashboard in the Amazon S3 console, it can a few hours for these same metrics to appear in CloudWatch. When you enable the CloudWatch publishing option for S3 Storage Lens metrics for the first time, it can take up to 24 hours for your metrics to publish to CloudWatch.
(機械翻訳)
毎日のS3 Storage LensメトリクスがAmazon S3コンソールのS3 Storage Lensダッシュボードに表示された後、同じメトリクスがCloudWatchに表示されるまで数時間かかることがあります。S3 Storage LensのメトリクスのCloudWatch公開オプションを初めて有効にした場合、メトリクスがCloudWatchに公開されるまで最大24時間かかることがあります。
パブリッシュされた Storage Lens メトリクスを確認してみた
というわけで一晩ほど寝かせた後の結果がこちらです。CloudWatch 画面のメトリクス一覧を確認すると、S3 Storage Lens Metrics
として記録されています。
正式な名前空間はAWS/S3/Storage-Lens
であり、AWS/S3
とは異なる名前空間です。
% aws cloudwatch list-metrics --namespace AWS/ AWS/Backup AWS/EC2 AWS/ElastiCache AWS/Firehose AWS/Logs AWS/S3/Storage-Lens AWS/SSM-RunCommand AWS/EBS AWS/EFS AWS/Events AWS/Lambda AWS/S3 AWS/SQS AWS/Usage
わたしの環境では「バケットごと」と「アカウントごと」で分けられていました。 Organizations 連携を有効にしている場合は「組織ごと」などが増えそうです。
メトリクスを覗いてみると、さまざまなディメンションが付与されています。
メトリクスに設定されるディメンションには以下があります。
ディメンション | 説明 |
---|---|
configuration_id | メトリックでレポートされたS3ストレージレンズ構成のダッシュボード名 |
metrics_version | S3ストレージレンズメトリックのバージョン。固定値は1.0 |
organization_id | メトリックスのAWS Organizations ID |
aws_account_number | メトリックに関連付けられたAWSアカウント |
aws_region | メトリックスのAWSリージョン |
bucket_name | メトリックでレポートされたS3バケットの名前 |
storage_class | メトリックでレポートされたバケットのストレージクラス |
record_type | メトリックの粒度:ORGANIZATION, ACCOUNT, BUCKET |
「バケットごと」「アカウントごと」などの切り口によって、使用されるディメンションは異なります。詳細は以下を参照してください。
ここで取得できるメトリクスを利用し、「アカウント全体の不完全なマルチパートアップロードバイトに対する CloudWatch アラームの設定」や「 CloudWatch ダッシュボードでストレージの増加傾向を可視化」といったことが行えます。ディメンションも細かく定義されていますので、お好みの形で活用してみてください。
まとめ
- Storage Lens ダッシュボードで「高度なメトリクスとレコメンデーション」を有効化している場合、CloudWatch パブリッシュを有効化できる
- CloudWatch パブリッシュ自体には追加料金は発生しない
終わりに
S3 Storage Lens メトリクスを CloudWatch にパブリッシュできるようになったアップデートを確認しました。
Storage Lens は低コストでストレージ使用量を分析できるサービスですが、これまでその情報を利用しようとすると Storage Lens ダッシュボードやエクスポートされた情報を使用する必要がありました。CloudWatch メトリクスとして扱えるようになったことで、他の AWS サービスのメトリクスと横串で扱えるようになります。
パブリッシュは無料の範囲では使用できませんが、よっぽど大規模でない限りは数ドルの範囲に収まるかと思いますので活用を検討してみてはいかがでしょうか。
以上、 チバユキ (@batchicchi) がお送りしました。